﻿using Shinva.Variables.Interface;
using Shinva.Variables.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Shinva.Variables.Type.time
{
    /// <summary>
    /// 在西门子博途软件里，TIME 类型用于表示时间间隔，其单位是毫秒，取值范围为 -2147483648 到 2147483647 毫秒。
    /// 这个取值范围为 32位有符号整数==>int类型
    /// 在 C# 中没有完全与之对应的原生类型，但可以使用 TimeSpan 结构体来近似表示。
    /// 32 位 T#-24d_20h_31m_23s_648ms 到
    ///T#24d_20h_31m_23s_647ms
    ///存储为：-2,147,483,648 ms 至
    ///+2,147,483,647 ms
    /// </summary>
    public class PlcTime : PlcMemberBase
    {
        public  TimeSpan Value { get; set; } // 32位有符号整数
        public int timeInterval { get; set; }//单位毫秒
        public PlcTime(int value)
        {
            Name = "Time";
            DataType = DataType.Time;
            Value = TimeSpan.FromMilliseconds(value);
            timeInterval = value;
            SizeInBits = 32;
        }
    }
}


//// 转换为秒
//double totalSeconds = timeSpan.TotalSeconds;
//Console.WriteLine($"Total seconds: {totalSeconds}");

//// 转换为分钟
//double totalMinutes = timeSpan.TotalMinutes;
//Console.WriteLine($"Total minutes: {totalMinutes}");
